Flutter アプリのフレーバーを作成する
フレーバーとは何ですか
Flutter アプリでさまざまな環境をセットアップする方法を考えたことはありますか? フレーバー(として知られている)ビルド構成iOS の場合)、あなた (開発者) に次のことを許可します。 同じコードベースを使用してアプリ用に別の環境を作成します。 たとえば、本格的な運用アプリ用に 1 つのフレーバーがあるとします。 1 つは限定的な「無料」アプリとして、もう 1 つは実験的な機能をテストするためのものなどです。
Flutter アプリの無料版と有料版の両方を作成したいとします。 フレーバーを使用して両方のアプリのバージョンをセットアップできます 2 つの別々のアプリを作成する必要はありません。 たとえば、アプリの無料版には基本的な機能と広告が含まれています。 対照的に、有料版にはアプリの基本機能、追加機能、 有料ユーザー向けにさまざまなスタイルがあり、広告はありません。
機能開発にフレーバーを使用することもできます。 新しい機能を構築し、それを試してみたい場合は、 フレーバーを設定してテストすることもできます。 実稼働コードは影響を受けません 新しい機能をデプロイする準備ができるまで。
フレーバーを使用するとコンパイル時の構成を定義できます 実行時に読み取られるパラメータを設定してカスタマイズします アプリの動作。
このドキュメントでは、iOS および Android 用の Flutter フレーバーのセットアップについて説明します。
環境設定
前提条件:
- Xcodeがインストールされている
- 既存の Flutter プロジェクト
iOS でフレーバーをセットアップするには、Xcode でビルド構成を定義します。
iOS でのフレーバーの作成
-
Xcode でプロジェクトを開きます。
-
選択する製品>図式>新しいスキームメニューから 新しいものを追加する
Scheme
。- スキームは、Xcode がさまざまなアクションを実行する方法を記述します。
このガイドでは、例を示します。風味と図式それは
名前付き
free
。 のビルド構成free
図式 持っています-free
サフィックス。
- スキームは、Xcode がさまざまなアクションを実行する方法を記述します。
このガイドでは、例を示します。風味と図式それは
名前付き
-
ビルド構成を複製して、 すでに使用可能なデフォルト構成と新しい構成 のために
free
図式。- 下情報末尾のタブ構成ドロップダウンリスト、 プラスボタンをクリックして複製します 各構成名 (デバッグ、リリース、プロファイル)。 既存の構成を環境ごとに 1 回複製します。
-
無料のフレーバーに合わせて、以下を追加します
-free
それぞれの新しい構成名の末尾に。 -
変更
free
スキームを、すでに作成されているビルド構成と一致するように変更します。- の中にランナープロジェクト、クリックスキームを管理…ポップアップウィンドウが開きます。
- 無料スキームをダブルクリックします。次のステップで (スクリーンショットに示すように)、各スキームを変更します 無料のビルド構成と一致させるには、次のようにします。
iOS でのフレーバーの使用
これで無料フレーバーの設定が完了しました。
たとえば、フレーバーごとに異なる製品バンドル ID を追加できます。
あバンドル識別子アプリケーションを一意に識別します。
この例では、デバッグ不要等しい値com.flavor-test.free
。
-
スキームを区別するには、アプリ バンドル識別子を変更します。 の製品バンドル識別子、追加
.free
各 -free スキーム値に。 -
の中にビルド設定、 をセットする商品名それぞれのフレーバーに合わせた値を設定します。 たとえば、「Debug Free」を追加します。
-
表示名を追加します情報plist。を更新しますバンドルの表示名に値を付ける
$(PRODUCT_NAME)
。
これで、フレーバーの設定が完了しました。free
図式
Xcode で、そのスキームのビルド構成を設定します。
詳細については、次のページに進んでください。アプリフレーバーの起動このドキュメントの最後にあるセクション。
プラグインの設定
アプリが Flutter プラグインを使用している場合は、ios/Podfile
。
- の
ios/Podfile
のデフォルトを変更するデバッグ、プロフィール、 とリリースXcode ビルド構成と一致するように、free
図式。
project 'Runner', {
'Debug-free' => :debug,
'Profile-free' => :release,
'Release-free' => :release,
}
Android でのフレーバーの使用
Android でのフレーバーのセットアップは、プロジェクトのbuild.gradleファイル。
-
Flutter プロジェクト内で、 案内するアンドロイド/アプリ/build.gradle。
-
を作成します
flavorDimension
追加した製品フレーバーをグループ化します。 Gradle は、同じものを共有する製品フレーバーを組み合わせませんdimension
。 -
追加
productFlavors
目的のフレーバーを含むオブジェクト の値を使用して寸法、解像度、 とアプリケーションIDまたアプリケーションIDサフィックス。- 各ビルドのアプリケーションの名前は次の場所にあります。解像度。
- を指定すると、アプリケーションIDサフィックスの代わりにアプリケーションID、 これは「ベース」アプリケーション ID に追加されます。
flavorDimensions "default"
productFlavors {
free {
dimension "default"
resValue "string", "app_name", "free flavor example"
applicationIdSuffix ".free"
}
}
起動構成のセットアップ
次に、起動.jsonファイル;これにより、コマンドを実行できるようになりますflutter run --flavor [environment name]
。
VSCode で、次のように起動構成を設定します。
- プロジェクトのルート ディレクトリに、という名前のフォルダーを追加します。.vscode。
- 内部.vscodeフォルダーに、という名前のファイルを作成します起動.json。
- の中に起動.jsonファイルに、各フレーバーの構成オブジェクトを追加します。 各構成には、名前、リクエスト、タイプ、プログラム、 と引数鍵。
{
"version": "0.2.0",
"configurations": [
{
"name": "free",
"request": "launch",
"type": "dart",
"program": "lib/main_development.dart",
"args": ["--flavor", "free", "--target", "lib/main_free.dart" ]
}
],
"compounds": []
}
これでターミナルコマンドを実行できるようになりましたflutter run --flavor free
または、実行を設定することもできます
IDE での設定。
アプリフレーバーの起動
- フレーバーを設定したら、Dart コードを変更します。ライブラリ/メインダーツ風味を消費するために。
- 次を使用してセットアップをテストします
flutter run --flavor free
コマンドラインまたはIDEで。
ビルドフレーバーの例については、iOS (Xcode)とアンドロイド、 の統合テストのサンプルを確認してください。 flutterリポジトリ。
詳しくは
フレーバーの作成と使用の詳細については、次を参照してください。 次のリソース:
- フレーバーごとに異なる Firebase プロジェクトを使用して Flutter (Android および iOS) でフレーバーを構築する Flutter Ready to Go
- Flutter アプリケーションのフレーバー設定 (Android および iOS)
- FlutterFire と Very Good CLI を使用した複数の Firebase 環境での Flutter フレーバーのセットアップ
パッケージ
フレーバーの作成をサポートするパッケージについては、以下を確認してください。
flutter_flavor
flutter_flavorizr